iT邦幫忙

DAY 14
0

30 天學會 Web 前端效能優化系列 第 14

[30 天學會 Web 前端效能優化] 14. Paint

  • 分享至 

  • xImage
  •  

Layout 結束後,便會正式將畫面 Paint 到螢幕上,聽起來很容易,但事實上並沒有這麼簡單。

首先讓我們進行一個測試,假設有兩個 div ,CSS 分別為:

1. 第一個 div

width: 100px;
height: 100px;
box-shadow: inset 0px 0px 10px rgba(0,0,0,0,5);
background-image: url(test.jpg);
opacity: 0.5

2. 第二個 div

width: 100px;
height: 100px;
background-color: white;

各位認為繪製哪一個 div 所需花費的時間較多呢?

第二個 div 繪製的形狀為長寬 100px ,背景白色的區塊。然而第一個 div 繪製的結果還多了陰影以及調整透明度,很明顯第一個 div 所需的時間是更多的。

透過這個例子,我們可以發現並不是 Paint 所有的區塊所需花費的時間都是一樣的。

有了這個概念後,讓我們談談 60 FPS 這個概念。(下圖為 Google I/O 2014 - Mobile Web performance auditing 這場 Talk 裡面的其中一張投影片)

60 FPS(Frames Per Second) 的概念是這樣的:你手中的 smartphone 螢幕的更新頻率大約為一秒六十次,而這過程必須將 60 個 frame(或稱 picture)置於畫面,也就是說必須在 16ms 內 create 一個 frame (60 frames / 1000ms),如果無法在 16ms 內完成的話,便會讓使用者有種畫面動彈不得、無法流暢使用的感覺。想必各位應該都有過瀏覽頁面時畫面感覺好像卡住的經驗吧?這就是導致這個現象發生的原因。

無法順利在一秒內產生 60 個 frame ,就宛如遺失了 frame 一般,一般我們會稱這些遺失的 frame 為 jank。

下一篇我們會針對此部分作更詳盡的說明。


上一篇
[30 天學會 Web 前端效能優化] 13. Layout
下一篇
[30 天學會 Web 前端效能優化] 15. 產生一個 frame 所需經過的過程
系列文
30 天學會 Web 前端效能優化30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言